<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Metal (API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Metal_(API)"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Metal_API rootpage-Metal_API skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Metal (API)</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><table class="float-right infobox toccolours toptextcells" style="border-spacing:5px; font-size:90%; text-align:left; width:21em;">
<tbody><tr>
<th colspan="2" class="hintergrundfarbe6" style="font-size:105%; text-align:center;">Metal
<p class="mw-empty-elt">
</p>
</th></tr>
<tr>
<td colspan="2" class="notheme" style="text-align:center; background-color:#f8f9fa;">Metal 4.png
</td></tr>
<tr>
<th colspan="2" class="hintergrundfarbe5" style="font-size:105%; text-align:center;">Basisdaten
<p class="mw-empty-elt">
</p>
</th></tr>
<tr>
<td><b><a href="Softwareentwickler" title="Softwareentwickler">Entwickler</a></b>
</td>
<td><a href="Apple_Inc." class="mw-redirect" title="Apple Inc.">Apple Inc.</a>
</td></tr>
<tr>
<td><b>Erscheinungsjahr</b>
</td>
<td>2014
</td></tr>
<tr>
<td><b><a href="Betriebssystem" title="Betriebssystem">Betriebssystem</a></b>
</td>
<td><a href="IOS_(Betriebssystem)" title="IOS (Betriebssystem)">iOS</a>, <a href="IPadOS" title="IPadOS">iPadOS</a>, <a href="MacOS" title="MacOS">macOS</a>, <a href="TvOS" title="TvOS">tvOS</a>
</td></tr>
<tr>
<td><b>Kategorie</b>
</td>
<td><a href="Programmierschnittstelle" title="Programmierschnittstelle">API</a>
</td></tr>
<tr>
<td><b>Lizenz</b>
</td>
<td><a href="Propriet%C3%A4re_Software" title="Proprietäre Software">Proprietäre Software</a>
</td></tr>
<tr>
<td class="hintergrundfarbe5" colspan="2" style="text-align:center;"><a rel="nofollow" class="external text" href="https://developer.apple.com/metal/">developer.apple.com/metal/</a>
</td></tr></tbody></table>
<p><b>Metal</b> ist eine von <a href="Apple" title="Apple">Apple</a> entwickelte Low-Level-, Hardware-beschleunigte 3D-Grafik- und <a href="Compute-Shader" title="Compute-Shader">Compute-Shader</a>-<a href="Computergrafik" title="Computergrafik">Computergrafik</a>-<a href="Programmierschnittstelle" title="Programmierschnittstelle">API</a> mit geringem Overhead. Es debütierte in <a href="IOS_(Betriebssystem)" title="IOS (Betriebssystem)">iOS</a> 8. Metal kombiniert Funktionen ähnlich wie <a href="OpenGL" title="OpenGL">OpenGL</a> und <a href="OpenCL" title="OpenCL">OpenCL</a> in einer <a href="Programmierschnittstelle" title="Programmierschnittstelle">API</a>. Es soll die Leistung verbessern, indem es für Apps auf iOS, <a href="IPadOS" title="IPadOS">iPadOS</a>, <a href="MacOS" title="MacOS">macOS</a> und <a href="TvOS" title="TvOS">tvOS</a> einen Low-Level-Zugriff auf die GPU-Hardware bietet. Es kann mit Low-Level-Programmierschnittstellen wie <a href="Vulkan_(API)" title="Vulkan (API)">Vulkan</a> und <a href="DirectX_12" class="mw-redirect" title="DirectX 12">DirectX 12</a> verglichen werden.
</p><p>Metal ist eine objektorientierte Programmierschnittstelle, die mit den Programmiersprachen <a href="Swift_(Programmiersprache)" title="Swift (Programmiersprache)">Swift</a>, <a href="C%2B%2B" title="C++">C++</a> oder <a href="Objective-C" title="Objective-C">Objective-C</a> aufgerufen werden kann. Die vollständige GPU-Ausführung wird über die Metal Shading Language gesteuert.
</p>
<div class="mw-heading mw-heading2"><h2 id="Features">Features</h2></div>
<p>Metal zielt darauf ab, den Zugriff auf die GPU mit geringem Overhead zu ermöglichen. Befehle werden vorher codiert und dann zur asynchronen Ausführung an die GPU gesendet. Die Anwendung steuert, wann auf den Abschluss einer Ausführung gewartet werden soll, sodass Anwendungsentwickler den Durchsatz erhöhen können, indem sie andere Befehle codieren, während Befehle auf der GPU ausgeführt werden, oder Energie sparen, indem sie explizit auf den Abschluss der GPU-Ausführung warten. Außerdem ist die Befehlscodierung CPU-unabhängig, sodass Anwendungen Befehle für jeden CPU-Thread unabhängig programmieren können. Schließlich werden die Renderstati im Voraus berechnet, sodass der GPU-Treiber im Voraus weiß, wie die Renderpipeline vor der Befehlsausführung konfiguriert und optimiert werden muss.
</p><p>Metal verbessert die Fähigkeiten der <a href="General_Purpose_Computation_on_Graphics_Processing_Unit" title="General Purpose Computation on Graphics Processing Unit">GPGPU</a>-Programmierung durch die Verwendung von Compute-Shadern. Metal verwendet eine spezielle Shading-Sprache basierend auf <a href="C%2B%2B#C++14" title="C++">C++14</a>, implementiert mit <a href="Clang" title="Clang">Clang</a> und <a href="LLVM" title="LLVM">LLVM</a>.
</p><p>Metal bietet Anwendungsentwicklern die Flexibilität, wo Metal-Ressourcen (Puffer, Texturen) erstellt werden können. Ressourcen können auf der CPU, GPU oder beiden zugewiesen werden und bieten Möglichkeiten zum Aktualisieren und Synchronisieren zugewiesener Ressourcen. Metal kann auch den Zustand einer Ressource während der Lebensdauer eines Befehlscodierers erzwingen.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>Auf macOS kann Metal Anwendungsentwicklern die Möglichkeit geben, festzulegen, auf welcher GPU ausgeführt werden soll. Anwendungsentwickler können zwischen der energiesparenden integrierten GPU der CPU, der diskreten GPU (bei bestimmten MacBooks und Macs) oder einer über Thunderbolt angeschlossenen externen GPU wählen. Anwendungsentwickler haben auch die Vorliebe, wie GPU-Befehle auf welchen GPUs ausgeführt werden, und geben Vorschläge, auf welcher GPU ein bestimmter Befehl am effizientesten auszuführen ist (Befehle zum Rendern einer Szene können von der diskreten GPU ausgeführt werden, während Nachbearbeitung und Anzeige von der integrierten GPU verarbeitet werden).
</p>
<div class="mw-heading mw-heading3"><h3 id="Metal_Performance_Shader">Metal Performance Shader</h3></div>
<p>Metal Performance Shaders ist eine hochoptimierte Bibliothek von Grafikfunktionen, die Anwendungsentwicklern dabei helfen kann, eine hervorragende Leistung zu erzielen und gleichzeitig den Aufwand für die Aufrechterhaltung der spezifischen Funktionen der GPU-Familie zu verringern.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> Sie bietet Funktionen wie:
</p>
<ul><li>Bildfilteralgorithmen</li>
<li>Verarbeitung neuronaler Netze</li>
<li>Erweiterte mathematische Operationen</li>
<li>Raytracing</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Geschichte">Geschichte</h2></div>
<p>Metal ist seit dem 2. Juni 2014 auf iOS-Geräten mit <a href="Apple_A7" title="Apple A7">Apple A7</a> oder höher verfügbar und seit 8. Juni 2015 auf Macs (2012-Modelle oder höher).
Am 5. Juni 2017 kündigte Apple auf der <a href="WWDC" class="mw-redirect" title="WWDC">WWDC</a> die zweite Version von Metal an, die von <a href="MacOS_High_Sierra" title="MacOS High Sierra">macOS High Sierra</a>, iOS 11 und tvOS 11 unterstützt wird. Metal 2 ist keine separate API von Metal und wird von derselben Hardware unterstützt. Metal 2 ermöglicht effizienteres Profiling und Debugging in <a href="Xcode" title="Xcode">Xcode</a>, beschleunigtes maschinelles Lernen, geringere CPU-Auslastung, Unterstützung für Virtual Reality auf macOS und insbesondere Besonderheiten der Apple A11 GPU.
</p><p>Auf der WWDC 2020 kündigte Apple die Migration des Mac auf Apple silicon an. Macs, die Apple silicon verwenden, verfügen über Apple-GPUs mit einem Funktionssatz, der das kombiniert, was zuvor auf macOS und iOS verfügbar war, und ist in der Lage, TBDR-Funktionen zu nutzen.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p><p>Auf der <a href="WWDC" class="mw-redirect" title="WWDC">WWDC</a> 2022 kündigte Apple die nächste Version, Metal 3, an, welche mit <a href="MacOS_Ventura" title="MacOS Ventura">macOS Ventura</a>, <a href="IOS_16" title="IOS 16">iOS 16</a> bzw. <a href="IPadOS_16" title="IPadOS 16">iPadOS 16</a> ausgeliefert wurde. Metal 3 führte mit MetalFX ein upscaling framework ein um komplexe Szenen effizient zu rendern.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> Ebenso wurde die Möglichkeit der Verwendung von C++ für den Aufruf der Metal API verkündet.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><a href="DirectX#DirectX_12" title="DirectX">DirectX 12</a></li>
<li><a href="MoltenVK" title="MoltenVK">MoltenVK</a></li>
<li><a href="Vulkan_(API)" title="Vulkan (API)">Vulkan</a>, Nachfolger von OpenGL.</li>
<li><a href="WebGPU" title="WebGPU">WebGPU</a>, Arbeitstitel eines zukünftigen Web-Standards sowie <a href="JavaScript" title="JavaScript">JavaScript</a> <a href="Programmierschnittstelle" title="Programmierschnittstelle">API</a> für hardwarenahe, beschleunigte Grafik- und Compute-Berechnungen mit dem Ziel, WebGL abzulösen</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://developer.apple.com/metal/">Metal for Developers</a></li>
<li><a rel="nofollow" class="external text" href="https://developer.apple.com/library/prerelease/ios/documentation/Miscellaneous/Conceptual/MetalProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40014221">Metal Programming Guide</a> (preliminary)</li>
<li><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=NRoGwuSDh3E">WWDC14 iOS 8 Metal Demo by EPIC Games</a>; <a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=Br7qVnzxzv8#t=1013">WWDC Recap, Zen Garden & Metal API for iOS8 | News | Unreal Engine</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://developer.apple.com/documentation/metal/setting_resource_storage_modes">Setting Resource Storage Modes</a></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://developer.apple.com/documentation/metal/synchronizing_a_managed_resource">Synchronizing a Managed Resource</a></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://developer.apple.com/documentation/metalperformanceshaders">Metal Performance Shaders</a></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://developer.apple.com/videos/play/wwdc2020/10631/">Bring your Metal app to Apple silicon Macs</a></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://developer.apple.com/videos/play/wwdc2022/10066"><i>Discover Metal 3.</i></a> In: <i>developer.apple.com.</i><span class="Abrufdatum"> Abgerufen am 24. Juni 2022</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AMetal+%28API%29&rft.title=Discover+Metal+3&rft.description=Discover+Metal+3&rft.identifier=&rft.date="> </span></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://developer.apple.com/videos/play/wwdc2022/10160"><i>Program Metal in C++ with metal-cpp.</i></a> In: <i>developer.apple.com.</i><span class="Abrufdatum"> Abgerufen am 10. September 2022</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AMetal+%28API%29&rft.title=Program+Metal+in+C%2B%2B+with+metal-cpp&rft.description=Program+Metal+in+C%2B%2B+with+metal-cpp&rft.identifier=&rft.date="> </span></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-07-06" href="https://de.wikipedia.org/wiki/?title=Metal_(API)&oldid=257677508">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>